//package com.felhr.serialportexample.utils;
//
//import android.content.Context;
//import android.content.SharedPreferences;
//import android.util.Base64;
//
//
//import java.io.ByteArrayInputStream;
//import java.io.ByteArrayOutputStream;
//import java.io.IOException;
//import java.io.ObjectInputStream;
//import java.io.ObjectOutputStream;
//
///**
// * SharedPreferences轻量级的存储工具类
// * 使用键值对的形式存储数据，其背后是用xml文件存放数据，文件存放在/data/data/<package name>/shared_prefs目录下
// */
//public class MySPUtils {
//
//    private static String FILE_NAME = "znc";
//    /**
//     * 第一个参数用于指定该文件的名称; 第二个参数指定文件的操作模式，共有四种操作模式
//     * mode为操作模式，默认的模式为0或MODE_PRIVATE，还可以使用MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE
//     * mode指定为MODE_PRIVATE，则该配置文件只能被自己的应用程序访问。
//     * mode指定为MODE_WORLD_READABLE，则该配置文件除了自己访问外还可以被其它应该程序读取。
//     * mode指定为MODE_WORLD_WRITEABLE，则该配置文件除了自己访问外还可以被其它应该程序读取和写入
//     */
//    private static SharedPreferences sp = MyApplication.context.getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE);
//
//    /**
//     * put Object preferences
//     * 保存对象，场景：保存list\map,收藏、足迹、评论数
//     */
//    @SuppressWarnings("unchecked")
//    public static boolean putObject(String key, Object object) {
//        boolean flag = false;
//        //创建字节输出流
//        ByteArrayOutputStream baos = new ByteArrayOutputStream();
//        //创建字节对象输出流
//        ObjectOutputStream out = null;
//        try {
//            //创建对象输出流，并封装字节流
//            out = new ObjectOutputStream(baos);
//            //将对象写入字节流
//            out.writeObject(object);
//            //将字节流编码成base64的字符窜
//            String objectVal = Base64.encodeToString(baos.toByteArray(), Base64.NO_WRAP);
//            //将数据存入本地缓存
//            flag = sp.edit().putString(key, objectVal).commit();
//        } catch (Exception e) {
//            e.printStackTrace();
//            MyLogUtils.logI(e.toString());
//        } finally {
//            try {
//                if (out != null) {
//                    out.close();
//                }
//                baos.close();
//            } catch (IOException e) {
//                e.printStackTrace();
//            }
//        }
//        return flag;
//    }
//
//    /**
//     * get Object preferences
//     */
//    @SuppressWarnings("unchecked")
//    public static Object getObject(String key) {
//        Object mObject = new Object();
//        ByteArrayInputStream bais = null;
//        ObjectInputStream ois = null;
//        try {
//            // 获取已保存的字符串
//            String objectVal = sp.getString(key, "");
//            byte[] buffer = Base64.decode(objectVal, Base64.NO_WRAP);
//            //一样通过读取字节流，创建字节流输入流，写入对象并作强制转换
//            bais = new ByteArrayInputStream(buffer);
//            if (bais.available() != 0)
//                //再次封装
//                ois = new ObjectInputStream(bais);
//            //读取对象
//            mObject = ois.readObject();
//        } catch (Exception e) {
//            e.printStackTrace();
//        } finally {
//            try {
//                if (ois != null) {
//                    ois.close();
//                }
//                bais.close();
//            } catch (IOException e) {
//                e.printStackTrace();
//            }
//        }
//        return mObject;
//    }
//
//    /**
//     * 设置是否第一次进入App
//     */
//    public static void setIsFirstEnterApp(boolean isFirstEnterApp) {
//        sp.edit().putBoolean("is_first_enter_app", isFirstEnterApp).apply();
//    }
//
//    public static boolean getIsFirstEnterApp() {
//        return sp.getBoolean("is_first_enter_app", true);
//    }
//
//    /**
//     * 设置是否第一次显示隐私政策
//     */
//    public static void setIsShowUserPrivacyPolicy(boolean isFirstEnterApp) {
//        sp.edit().putBoolean(SPKeys.KEY_IS_SHOW_PRIVACY_POLICY, isFirstEnterApp).apply();
//    }
//
//    public static boolean getIsShowUserPrivacyPolicy() {
//        return sp.getBoolean(SPKeys.KEY_IS_SHOW_PRIVACY_POLICY, true);
//    }
//
//    /**
//     * 保存切换测试环境的API地址下标
//     */
//    public static void saveHostTypeIndex(int index) {
//        sp.edit().putInt(SPKeys.KEY_HOST_TYPE_INDEX, index).apply();
//    }
//
//    /**
//     * 设置Api环境(http请求的baseUrl)，默认是ApiConstants.API_IP_INDEX
//     */
//    public static int getHostTypeIndex() {
//        return sp.getInt(SPKeys.KEY_HOST_TYPE_INDEX, ApiConstant.API_IP_INDEX);
//    }
//
//    /**
//     * 保存用户登录状态
//     */
//    public static void saveIsLogin(boolean loginState) {
//        sp.edit().putBoolean(SPKeys.KEY_IS_LOGIN, loginState).apply();
//    }
//
//    /**
//     * 获取用户登录状态
//     */
//    public static boolean getIslogin() {
//        return sp.getBoolean(SPKeys.KEY_IS_LOGIN, false);
//    }
//
//    /**
//     * 保存用户登录kaiguan
//     */
//    public static void saveValue(boolean value) {
//        sp.edit().putBoolean(SPKeys.KEY_OPENVALUE, value).apply();
//    }
//
//    public static boolean getValue() {
//        return sp.getBoolean(SPKeys.KEY_OPENVALUE, false);
//    }
//
//    /**
//     * 保存用户Token
//     */
//    public static void saveUserToken(String token) {
//        sp.edit().putString(SPKeys.KEY_USER_TOKEN, token).apply();
//    }
//
//    /**
//     * 获取用户token
//     */
//    public static String getUserToken() {
//        return sp.getString(SPKeys.KEY_USER_TOKEN, "");
//    }
//
//    /**
//     * 保存用户id
//     */
//    public static void saveUserID(int userID) {
//        sp.edit().putInt(SPKeys.KEY_USER_ID, userID).apply();
//    }
//
//    /**
//     * 获取用户id
//     */
//    public static int getUserID() {
//        return sp.getInt(SPKeys.KEY_USER_ID, -1);
//    }
//
//
//    /**
//     * 保存用户类型: 默认为个人用户，0==个人用户；1==商家用户
//     */
//    public static void saveUserType(int userType) {
//        sp.edit().putInt(SPKeys.KEY_USER_TYPE, userType).apply();
//    }
//
//    /**
//     * 获取用户类型: 0==个人用户；1==商家用户。 默认为0
//     * 场景：切换角色功能
//     */
//    public static int getUserType() {
//        return sp.getInt(SPKeys.KEY_USER_TYPE, 0);
//    }
//
//    /**
//     * 保存用户角色类型: 默认为个人用户，0==个人用户；1==商家用户
//     */
//    public static void saveUserRoleType(int userRoleType) {
//        sp.edit().putInt(SPKeys.KEY_USER_ROLE_TYPE, userRoleType).apply();
//    }
//
//    /**
//     * 获取用户角色类型: 0==个人用户；1==商家用户。 默认为0
//     * 场景：切换角色功能
//     */
//    public static int getUserRoleType() {
//        return sp.getInt(SPKeys.KEY_USER_ROLE_TYPE, 0);
//    }
//
//    /**
//     * 保存用户编号
//     */
//    public static void saveUserNum(String userNum) {
//        sp.edit().putString(SPKeys.KEY_USER_NUM, userNum).apply();
//    }
//
//    public static String getUserNum() {
//        return sp.getString(SPKeys.KEY_USER_NUM, "");
//    }
//
//    /**
//     * 保存用户头像url
//     */
//    public static void saveUserAvatar(String avatar) {
//        sp.edit().putString(SPKeys.KEY_USER_AVATAR, avatar).apply();
//    }
//
//    /**
//     *  获取用户头像url
//     */
//    public static String getUserAvatar() {
//        return sp.getString(SPKeys.KEY_USER_AVATAR, "");
//    }
//
//    /**
//     * 保存用户昵称
//     */
//    public static void saveUserName(String userName) {
//        sp.edit().putString(SPKeys.KEY_USER_NAME, userName).apply();
//    }
//
//    public static String getUserName() {
//        return sp.getString(SPKeys.KEY_USER_NAME, "");
//    }
//
//    /**
//     * 保存源选账号
//     */
//    public static void saveYXAccountName(String userName) {
//        sp.edit().putString(SPKeys.KEY_YX_ACCOUNT_NAME, userName).apply();
//    }
//
//    public static String getYXAccountName() {
//        return sp.getString(SPKeys.KEY_YX_ACCOUNT_NAME, "");
//    }
//
//    /**
//     * 缓存用户登录账号
//     */
//    public static void saveUserLoginAccount(String userLoginAccount) {
//        sp.edit().putString(SPKeys.KEY_USER_LOGIN_ACCOUNT, userLoginAccount).apply();
//    }
//
//    public static String getUserLoginAccount() {
//        return sp.getString(SPKeys.KEY_USER_LOGIN_ACCOUNT, "");
//    }
//
//    /**
//     * 清除用户信息(场景：退出登录或token被改变)
//     */
//    public static void clearUserInfo() {
//        saveIsLogin(false);//保存用户登录状态
//        saveUserToken("");
//        saveUserID(-1);
//        saveUserName("");
//        saveYXAccountName("");
//        saveUserAvatar("");
//        saveUserType(-1);
//        savePersonalQRCodeData("");
//        com.worldlinking.textilesmall.utils.MySPUtils.saveUserRoleType(ConstUtils.INSTANCE.getUSER_ROLE_TYPE_LIST()[0]);
////        ActivityManager.getInstance().finishAll();
//    }
//
//    /**
//     * 保存 banner 下标
//     */
//    public static void saveBannerPos(int userID) {
//        sp.edit().putInt(SPKeys.KEY_BANNER_INDEX, userID).apply();
//    }
//
//    /**
//     * 获取 banner 下标
//     */
//    public static int getBannerPos() {
//        return sp.getInt(SPKeys.KEY_BANNER_INDEX, 0);
//    }
//
//    /**
//     * 保存 推荐列表的滑动状态： true==已上滑；false==无滑动
//     */
//    public static void saveRecommendListScrollStatus(boolean status) {
//        sp.edit().putBoolean(SPKeys.KEY_IS_SCROLL_RECOMMEND, status).apply();
//    }
//
//    /**
//     * 获取 推荐列表的滑动状态
//     */
//    public static boolean getRecommendListScrollStatus() {
//        return sp.getBoolean(SPKeys.KEY_IS_SCROLL_RECOMMEND, false);
//    }
//
//    /**
//     * 保存 推荐列表的滑动状态： true==已上滑；false==无滑动
//     */
//    public static void saveFollowListScrollStatus(boolean status) {
//        sp.edit().putBoolean(SPKeys.KEY_IS_SCROLL_FOLLOW, status).apply();
//    }
//
//    /**
//     * 获取 推荐列表的滑动状态
//     */
//    public static boolean getFollowListScrollStatus() {
//        return sp.getBoolean(SPKeys.KEY_IS_SCROLL_FOLLOW, false);
//    }
//
//
//    /**
//     * 保存首页商品分类列表数据
//     */
//    public static void saveGoodsCategoryListData(String dataJson) {
//        sp.edit().putString(SPKeys.KEY_GOODS_CATE_LIST, dataJson).apply();
//    }
//    public static String getGoodsCategoryListData() {
//        return sp.getString(SPKeys.KEY_GOODS_CATE_LIST, "");
//    }
//    /**
//     * 保存用户权限数据
//     */
//    public static void saveUserPermissionListData(String dataJson) {
//        sp.edit().putString(SPKeys.USER_PERMISSION, dataJson).apply();
//    }
//    public static String getUserPermissionListData() {
//        return sp.getString(SPKeys.USER_PERMISSION, "");
//    }
//
//    /**
//     * 保存定制url
//     */
//    public static void saveCustomMadeURLData(String url) {
//        sp.edit().putString(SPKeys.KEY_CUSTOM_MADE_URL, url).apply();
//    }
//    public static String getCustomMadeURLData() {
//        return sp.getString(SPKeys.KEY_CUSTOM_MADE_URL, ConstUtils.COSTOM_URL);
//    }
//
//    /**
//     * 设备 app url
//     */
//    public static void saveDeviceAppURLData(String url) {
//        sp.edit().putString(SPKeys.KEY_DEVICE_APP_URL, url).apply();
//    }
//    public static String getDeviceAppURLData() {
//        return sp.getString(SPKeys.KEY_DEVICE_APP_URL, ConstUtils.YUANSHENG_URL);
//    }
//
//    /**
//     * 商家动态 草稿
//     */
//    public static void saveBusinessDynamicData(String json) {
//        sp.edit().putString(SPKeys.KEY_BUSINESS_DYNAMIC, json).apply();
//    }
//    public static String getBusinessDynamicData() {
//        return sp.getString(SPKeys.KEY_BUSINESS_DYNAMIC, "");
//    }
//
//    /**
//     * 个人二维码数据
//     */
//    public static void savePersonalQRCodeData(String data) {
//        sp.edit().putString(SPKeys.KEY_PERSONAL_QR_CODE, data).apply();
//    }
//    public static String getPersonalQRCodeData() {
//        return sp.getString(SPKeys.KEY_PERSONAL_QR_CODE, ConstUtils.YUANSHENG_URL);
//    }
//
//    /**
//     * 自提协议 H5链接
//     */
//    public static void savePickAgrUrl(String url) {
//        sp.edit().putString(SPKeys.KEY_PICK_AGREEMENT_URL, url).apply();
//    }
//    public static String getPickAgrUrl() {
//        return sp.getString(SPKeys.KEY_PICK_AGREEMENT_URL, ConstUtils.WEB_URL_DEF);
//    }
//    /**
//     * 隐私声明协议 H5链接
//     */
//    public static void savePrivacyAgrUrl(String url) {
//        sp.edit().putString(SPKeys.KEY_PRIVACY_AGREEMENT_URL, url).apply();
//    }
//    public static String getPrivacyAgrUrl() {
//        return sp.getString(SPKeys.KEY_PRIVACY_AGREEMENT_URL, ConstUtils.WEB_URL_DEF);
//    }
//    /**
//     * 用户隐私 H5链接
//     */
//    public static void saveUserAgrUrl(String url) {
//        sp.edit().putString(SPKeys.KEY_USER_AGREEMENT_URL, url).apply();
//    }
//    public static String getUserAgrUrl() {
//        return sp.getString(SPKeys.KEY_USER_AGREEMENT_URL, ConstUtils.WEB_URL_DEF);
//    }
//
//    /**
//     * 材料库 app 下载url
//     */
//    public static void saveCaiLiaoKuURLData(String url) {
//        sp.edit().putString(SPKeys.KEY_CaiLiaoKu_URL, url).apply();
//    }
//    public static String getCaiLiaoKuURLData() {
//        return sp.getString(SPKeys.KEY_CaiLiaoKu_URL, ConstUtils.CAILIAOKU_URL);
//    }
//
//    /**
//     * 账户注销 H5链接
//     */
//    public static void saveAccountCancellationWebUrl(String url) {
//        sp.edit().putString(SPKeys.KEY_USER_CANCELLATION_URL, url).apply();
//    }
//    public static String getAccountCancellationWebUrl() {
//        return sp.getString(SPKeys.KEY_USER_CANCELLATION_URL, ConstUtils.WEB_URL_DEF);
//    }
//
//    /**
//     * 保存 新消息提醒的声音开关状态
//     */
//    public static void saveSetVoiceStatus(boolean status) {
//        sp.edit().putBoolean(SPKeys.KEY_IS_OPEN_VOICE, status).apply();
//    }
//
//    /**
//     * 获取 新消息提醒的声音开关状态
//     */
//    public static boolean getSetVoiceStatus() {
//        return sp.getBoolean(SPKeys.KEY_IS_OPEN_VOICE, false);
//    }
//
//    /**
//     * 保存未读消息数
//     */
//    public static void saveMsgUnreadNumber(int msgUnreadNum) {
//        sp.edit().putInt(SPKeys.KEY_MSG_UNREAD_NUMBER, msgUnreadNum).apply();
//    }
//
//    /**
//     * 获取未读消息数
//     */
//    public static int getMsgUnreadNumber() {
//        return sp.getInt(SPKeys.KEY_MSG_UNREAD_NUMBER, 0);
//    }
//}
